#pragma once

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <assert.h>

#define SIZE 1024
#define SYNC_NOW 1// 立即刷新
#define SYNC_LINE 2// 按行刷新
#define SYNC_FULL 4// 缓冲区满了才刷新

typedef struct FILE_
{
    int flags;// 文件标记位
    int fileno;// 文件描述符
    int capacity;// buffer的总容量
    int size;// buffer当前的使用量
    char buffer[SIZE];// 缓冲区
}FILE_;

FILE_* fopen_(const char* path_name, const char* mode);
void fclose_(FILE_* fp);
void fwrite_(const void* ptr, int num, FILE_* fp);
void fflush_(FILE_* fp);
